package com.yang.frost.blueberry.weixin.service;

import com.alibaba.fastjson.JSONObject;
import com.yang.frost.blueberry.weixin.params.WxTagsParams;

import java.util.Map;

/**
 * @author 10296
 * @date 2021/4/14
 * @Description:
 */
public interface WxUmsService {

    /**
     * 创建标签
     *
     * @param params 入参
     * @return obj
     * @throws Exception e
     */
    JSONObject createTags(WxTagsParams params) throws Exception;

    /**
     * 获取公众号已创建的标签
     *
     * @return ""
     * @throws Exception e
     */
    Map<String, Object> getTags() throws Exception;

    /**
     * 编辑标签
     *
     * @param params 入参
     * @return map
     * @throws Exception e
     */
    Map<String, Object> updateTags(WxTagsParams params) throws Exception;

    /**
     * 删除标签
     *
     * @param params 入参
     * @return map
     * @throws Exception e
     */
    Map<String, Object> deleteTags(WxTagsParams params) throws Exception;

    /**
     * 获取标签下粉丝列表
     *
     * @param params 入参
     * @return map
     * @throws Exception e
     */
    Map<String, Object> getUserByTag(WxTagsParams params) throws Exception;

    /**
     * 用户管理---批量为用户打标签
     *
     * @param params 入参
     * @return map
     * @throws Exception e
     */
    Map<String, Object> batchTaggingMembersTags(WxTagsParams params) throws Exception;

    /**
     * 用户管理---批量为用户取消标签
     *
     * @param params 入参
     * @return map
     * @throws Exception e
     */
    Map<String, Object> batchUnTaggingMembersTags(WxTagsParams params) throws Exception;

    /**
     * 用户管理--- 获取用户身上的标签列表
     *
     * @param params 入参
     * @return map
     * @throws Exception e
     */
    Map<String, Object> getIdListTags(WxTagsParams params) throws Exception;

    /**
     * 设置 指定用户设置备注名
     *
     * @param params 入参
     * @return map
     * @throws Exception e
     */
    Map<String, Object> updateRemarkUserInfo(WxTagsParams params) throws Exception;

    /**
     * 获取用户基本信息
     *
     * @param params params
     * @return map
     * @throws Exception e
     */
    Map<String, Object> getUserInfo(WxTagsParams params) throws Exception;

    /**
     * 批量获取用户基本信息
     *
     * @param params params
     * @return map
     * @throws Exception e
     */
    Map<String, Object> batchGetUserInfo(WxTagsParams params) throws Exception;

    /**
     * 获取用户列表
     *
     * @param params params
     * @return map
     * @throws Exception e
     */
    Map<String, Object> getUserList(WxTagsParams params) throws Exception;

    /**
     * 获取公众号的黑名单列表
     *
     * @param params params
     * @return map
     * @throws Exception e
     */
    Map<String, Object> getBlackList(WxTagsParams params) throws Exception;

    /**
     * 拉黑用户
     *
     * @param params params
     * @return map
     * @throws Exception e
     */
    Map<String, Object> batchBlacklist(WxTagsParams params) throws Exception;

    /**
     * 取消拉黑用户
     *
     * @param params params
     * @return map
     * @throws Exception e
     */
    Map<String, Object> batchUnBlacklist(WxTagsParams params) throws Exception;


}
